﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace App_Persistencia
{
    public class Presupuesto_Bebida_Data
    {
        private int presupuestoId;

        public int PresupuestoId
        {
            get { return presupuestoId; }
            set { presupuestoId = value; }
        }
        
        private Bebida_Data bebida;

        public Bebida_Data Bebida
        {
            get { return bebida; }
            set { bebida = value; }
        }

        private float cantidadBebida;

        public float CantidadBebida
        {
            get
            {
                return cantidadBebida;
            }

            set
            {
                cantidadBebida = value;
            }
        }

        public float actualizarCantidadBebidaXPresupuesto()
        {
            //Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();
            float cant = -1;

            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                command.Connection = connection;
                command.CommandText = "spActualizarCantBebidasxPresupuesto";
                command.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter param;

                //establesco el parametro @IdPresupuesto
                param = command.Parameters.AddWithValue("@IdPresupuesto", this.PresupuestoId);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;


                //establesco el parametro @IdBebida
                param = command.Parameters.AddWithValue("@IdBebida", this.Bebida.Id);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                ////establesco el parametro de salida @cant
                param = command.Parameters.AddWithValue("@cant", 0);
                param.Direction = ParameterDirection.Output;

                // ejecuto el procedimiento
                command.ExecuteNonQuery();
                //recupero el valor del parametro @UsuarioId
                cant= Convert.ToSingle(command.Parameters["@cant"].Value); 
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }
            return cant;
        }

        public DataTable buscarBebidasPorPresupuesto(int idPresupuesto)
        {
            string commandSQL = "SELECT Bebida.beb_Id AS BebidaId, Bebida.beb_Nombre AS Nombre, Bebida.beb_UnidadMedida AS UnidadMedida, Bebida.beb_Precio AS Precio, Bebida.beb_Descripcion as Descripcion, PresupuestoxBebida.pXB_cantidad as Cantidad"
                                + " FROM Bebida INNER JOIN "
                                + " PresupuestoxBebida ON Bebida.beb_Id = PresupuestoxBebida.bebida_Id ";

            if (idPresupuesto != -1)
            {
                StringBuilder s = new StringBuilder(commandSQL);
                s.Append(" WHERE (PresupuestoxBebida.presupuesto_Id = " + idPresupuesto.ToString() + ")");
                commandSQL = s.ToString();
            }
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));
            DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet, "Bebida");
            DataTable dataTable = dataSet.Tables["Bebida"];
            return dataTable;
        }
       
    }
}
